001 /** 002 * Created by IntelliJ IDEA. 003 * User: Wei Wang 004 * Date: Feb 26, 2003 005 * Time: 7:58:18 PM 006 */ 007 008 package EVolve.util.painters.placements; 009 010 import EVolve.visualization.*; 011 import EVolve.util.painters.shapes.Shape; 012 import EVolve.util.painters.shapes.*; 013 import EVolve.exceptions.NoDataPlotException; 014 015 import java.util.HashMap; 016 import java.util.ArrayList; 017 import java.awt.*; 018 019 public abstract class Placement{ 020 public static final int INDENT = 50; 021 protected int shapeSize = 10; 022 protected HashMap parties[]; 023 024 public Placement() { 025 parties = new HashMap[2]; 026 } 027 028 public void categoritize(AutoImage image, int consumer_type) { 029 int w = image.getW(), h = image.getH(); 030 031 parties[0] = new HashMap(); 032 parties[1] = new HashMap(); 033 034 for (int j=0; j<h; j++) { 035 for (int i=0; i<w; i++) { 036 Object value = image.getColor(i,j); 037 if (value == null) continue; 038 for (int k=0; k<((ArrayList)value).size(); k++) { 039 Shape consumer = (Shape)((ArrayList)value).get(k); 040 if (consumer.getEntityType() == consumer_type) { 041 parties[1].put(new Integer(parties[1].size()),consumer); 042 break; 043 } 044 } 045 } 046 } 047 048 049 for (int i=0; i<w; i++) { 050 for (int j=0; j<h; j++) { 051 Object value = image.getColor(i,j); 052 if (value == null) continue; 053 for (int k=0; k<((ArrayList)value).size(); k++) { 054 Shape producer = (Shape)((ArrayList)value).get(k); 055 if (producer.getEntityType() != consumer_type) { 056 parties[0].put(new Integer(parties[0].size()),producer); 057 break; 058 } 059 } 060 } 061 } 062 063 } 064 065 public abstract String getName(); 066 067 public abstract Rectangle initialPlacement(AutoImage image) throws NoDataPlotException; 068 }